package org.hobbyhorse.ranks.client;

import com.google.gwt.place.shared.PlaceController;
import com.google.web.bindery.event.shared.EventBus;

public interface ClientFactory {

	
	  /**
	   * Create the App.
	   * 
	   * @return a new instance of the {@link App}
	   */
	  App getApp();

	  /**
	   * Get the {@link EventBus}
	   * 
	   * @return the event bus used through the app
	   */
	  EventBus getEventBus();

	  /**
	   * Get the {@link PlaceController}.
	   * 
	   * @return the place controller
	   */
	  PlaceController getPlaceController();

	  /**
	   * Get the RequestFactory used to query the server.
	   * 
	   * @return the request factory
	   */
//	  MobileWebAppRequestFactory getRequestFactory();

	  /**
	   * Get the UI shell.
	   * 
	   * @return the shell
	   */
//	  MobileWebAppShell getShell();

	  /**
	   * Get an implementation of {@link TaskEditView}.
	   */
//	  TaskEditView getTaskEditView();

	  /**
	   * Get an implementation of {@link TaskListView}.
	   */
//	  TaskListView getTaskListView();

	  /**
	   * Get the {@link TaskProxyLocalStorage} that stores tasks.
	   */
//	  TaskProxyLocalStorage getTaskProxyLocalStorage();

	  /**
	   * Get an implementation of {@link TaskEditView}.
	   */
//	  TaskReadView getTaskReadView();	
	
//	HorsesViewImpl getHorsesView();
//	NewHorseViewImpl getNewHorseView();
//	RidersPanel getRidersPanel();
}
